package com.hmall.api.config;

import com.hmall.api.clients.fallback.ItemClientFallbackFactory;
import com.hmall.api.interceptor.UserInfoFeignInterceptor;
import feign.Logger;
import org.springframework.context.annotation.Bean;

/**
 * @author Administrator
 * @version 1.0
 */
public class DefaultFeignConfig {
    /**
     * 配置Feign客户端的日志级别
     *
     * @return Feign客户端的日志级别，这里设置为基本级别
     */
    @Bean
    public Logger.Level feignLoggerLevel() {
        return Logger.Level.BASIC;
    }

    /**
     *
     * 配置 Feign 客户端拦截器
     * 创建一个 UserInfoFeignInterceptor 的 Bean。
     *
     * @return UserInfoFeignInterceptor 对象
     */
    @Bean
    public UserInfoFeignInterceptor userInfoFeignInterceptor() {
        return new UserInfoFeignInterceptor();
    }

    /**
     * 配置商品服务客户端的降级处理
     * 创建一个ItemClientFallbackFactory的Bean
     *
     * @return 返回ItemClientFallbackFactory的实例
     */
    @Bean
    public ItemClientFallbackFactory itemClientFallbackFactory() {
        return new ItemClientFallbackFactory();
    }
}
